package com.hhxy.finall;

abstract class Student{
    //模板方法：写共同部分
    public final void write(){
        //作文题目《我的爸爸》
        System.out.println("《我的爸爸》");
        //第一段作文内容：
        System.out.println("我的爸爸爱我");
        //中间部分：
        writeMain();//谁触发就调用谁的方法，和单例模式那个run()方法一样
        //最后一段内容：
        System.out.println("我爱我的爸爸");
    }
    //抽象方法：写功能确定但内容不确定的部分
    public abstract void writeMain();

}
class StudentMiddle extends Student{

    @Override
    public void writeMain() {
        System.out.println("我爸是李刚");
    }
}
class StudentSmall extends Student{

    @Override
    public void writeMain() {
        System.out.println("我爸是王键林");
    }
}

public class Test {
    public static void main(String[] args) {
        StudentMiddle sm = new StudentMiddle();
        StudentSmall ss = new StudentSmall();
        sm.write();
        ss.write();
    }
}

